﻿using System.Xml.Linq;

// ReSharper disable MemberHidesStaticFromOuterClass
namespace Adjunct.Framework.Nuspec
{
	internal static class XNames
	{
		internal static readonly XNamespace Namespace = ""; // "http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd";

		internal static class Package
		{
			internal static XName ElementName = Namespace + "package";

			internal static class Files
			{
				internal static XName ElementName = Namespace + "files";

				internal static class File
				{
					internal static XName ElementName = Namespace + "file";
					internal static XName Exclude = "exclude";
					internal static XName Source = "src";
					internal static XName Target = "target";
				}
			}

			internal static class Metadata
			{
				internal static XName Authors = Namespace + "authors";
				internal static XName Copyright = Namespace + "copyright";
				internal static XName Description = Namespace + "description";
				internal static XName ElementName = Namespace + "metadata";
				internal static XName IconUrl = Namespace + "iconUrl";
				internal static XName Id = Namespace + "id";
				internal static XName Language = Namespace + "language";
				internal static XName LicenseUrl = Namespace + "licenseUrl";
				internal static XName Owners = Namespace + "owners";
				internal static XName ProjectUrl = Namespace + "projectUrl";
				internal static XName ReleaseNotes = Namespace + "releaseNotes";
				internal static XName RequireLicenseAcceptance = Namespace + "requireLicenseAcceptance";
				internal static XName Summary = Namespace + "summary";
				internal static XName Tags = Namespace + "tags";
				internal static XName Title = Namespace + "title";
				internal static XName Version = Namespace + "version";

				internal static class Dependencies
				{
					internal static XName ElementName = Namespace + "dependencies";

					internal static class Dependency
					{
						internal static XName ElementName = Namespace + "dependency";
						internal static XName Id = "id";
						internal static XName Version = "version";
					}
				}

				internal static class FrameworkAssemblies
				{
					internal static XName ElementName = Namespace + "frameworkAssemblies";

					internal static class FrameworkAssembly
					{
						internal static XName AssemblyName = "assemblyName";
						internal static XName ElementName = Namespace + "frameworkAssembly";
						internal static XName TargetFramework = "targetFramework";
					}
				}

				internal static class References
				{
					internal static XName ElementName = Namespace + "references";

					internal static class Reference
					{
						internal static XName ElementName = Namespace + "reference";
						internal static XName File = "file";
					}
				}
			}
		}
	}
}
// ReSharper restore MemberHidesStaticFromOuterClass